$(function (){
    loadTeacherList();

});


function loadTeacherList(){
    $.ajax({
        url:"/api/teacher/list"

    }).done(function (data){
        //console.log(data)
        let html ="";
        data.forEach((element , index) => {
            html+="<tr>"
            html+="<td>"+element.id+"</td>"
            html+="<td>"+element.tno+"</td>"
            html+="<td>"+element.name+"</td>"
            html+="<td>"+element.age+"</td>"

            html += "<td> <a href='#' onclick='showTeacherDlg(" + element.id
                + ")'>编辑</a> &nbsp;&nbsp;<a href='#' onclick='deleteById(" +
                +element.id + ")'>删除</a></td>"


            html+="</tr>"
        })
        $("#teacherTb").html(html)
    });
}
let layerIndex;
/**
 * 弹出教师新增/更新对话框
 */
function showTeacherDlg(id){

    let title = "新增教师"
    if(id){
        //是编辑
        title = "编辑教师"
        $("#formId").css("display","block");
        //读取教师信息并赋值
        $.ajax({
            url:"/api/teacher/"+id,
            method: "GET"
        }).done(result=>{
            console.log(result)

            //遍历 result 对象并将值填充到 #studForm 表单中
            $.each(result, function (key, value) {
                //修改选择器，确保选择的是 #studForm 内的字段
                var field = $('#teaForm [name="' + key + '"]');

                if (field.is(':radio')) {
                    field.filter('[value="' + value + '"]').prop('checked', true);//选中对应的单选按钮
                } else if (field.is(':checkbox')) {
                    field.prop('checked', value === "yes");//选中复选框
                } else {
                    field.val(value);//填充文本框或其他字段
                }
            });
        })
    }
    else{
        //是新增
        $("#teaForm")[0].reset();
        $("#formId").css("display","none");
    }


    layerIndex=layer.open({
        type: 1,
        area: ['523px','auto'],
        title: title,
        content:$('#teaForm') //捕获层
    });
}


layui.use(function (){
    layui.form.on('submit(tea-dlg)',function(data){
        event.preventDefault();
        comitTeaDlg();
    })
});

function comitTeaDlg(){
    let id = $("#id").val();
    let formData = $("#teaForm").serialize();
    if (id != null && id != "") {
        //是更新教师

        $.ajax({
            url: "/api/teacher/update",
            method: "PUT",
            data: formData
        }).done(result => {
            console.log(result);
            if (result.id) {
                //（4）读取并刷新原来的教师列表
                loadTeacherList();

                //（3）关闭弹出层
                console.log("add success");
                if (layerIndex)
                    layer.close(layerIndex);

                // 新增代码，重新启用按钮
                $("#btnOK").prop("disabled", false).removeClass("layui-btn-disabled");
            }
        }).fail((jqXHR, textStatus, errorThrown) => {
            console.error("Request failed: " + textStatus + " - " + errorThrown);
            //可以在这里处理错误逻辑
            alert("An error occurred. Please try again.");
        });
    } else {
        //新增需要进行

        //（1）验证表单是否合法

        //（2）将表单数据发送到服务器的insert中，将提交按钮变灰

        $.ajax({
            url: "/api/teacher/add",
            method: "POST",
            data: formData
        }).done(result => {
            console.log(result);
            if (result.id) {
                //（4）读取并刷新原来的读学生列表
                loadTeacherList();

                //（3）关闭弹出层
                console.log("add success");
                if (layerIndex)
                    layer.close(layerIndex);

                // 新增代码，重新启用按钮
                $("#btnOK").prop("disabled", false).removeClass("layui-btn-disabled");
            }
        }).fail((jqXHR, textStatus, errorThrown) => {
            console.error("Request failed: " + textStatus + " - " + errorThrown);
            //可以在这里处理错误逻辑
            alert("An error occurred. Please try again.");
        });
    }

    $("#btnOK").prop("disabled", true).addClass("layui-btn-disabled");//禁用按钮

}

function deleteById(id) {

    //删除
    layer.confirm('你真的要删除吗？一旦删除，不可恢复！', {icon: 3}, function () {

        $.ajax({
            url: "/api/teacher/delete/"+id,
            method:"DELETE"
        }).done(result => {
            loadTeacherList();
        })
        layer.closeAll();//关闭所有层（包括确认框）
    }, function () {

    });
}